Welcome to pandas!

8.12 join表格横向拼接(指定联接类型设置)

pd.concat()函数做横向联接时,只有outer和inner两种联接方式,而data.join()函数增加了left和right两种联接

外连接outer,两表的所有索引号都会有


import pandas as pd

y19=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2019年" )

y20=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2020年" )

print (y19)

print (y20)

df=y19.join(other=y20.set_index( "业务员" ), #指定右表的关联的索引

lsuffix= "19",

rsuffix= "20",

on= "业务员" , #指定左表的关联的索引

how= "outer"

)

print (df)

返回:

业务员 部门 业绩
0 张三 销售1部 153
1 李四 销售2部 228
2 王麻子 销售2部 189
3 小韦 销售3部 185
4 许麻子 销售1部 265
5 老刘 销售1部 143

业务员 部门 业绩
0 张三 销售1部 180
1 李四 销售2部 124
2 王麻子 销售2部 125
3 许麻子 销售1部 215
4 老刘 销售1部 171
5 老王 销售1部 113

业务员 部门19 业绩19 部门20 业绩20
0.0 张三 销售1部 153.0 销售1部 180.0
1.0 李四 销售2部 228.0 销售2部 124.0
2.0 王麻子 销售2部 189.0 销售2部 125.0
3.0 小韦 销售3部 185.0 NaN NaN
4.0 许麻子 销售1部 265.0 销售1部 215.0
5.0 老刘 销售1部 143.0 销售1部 171.0
NaN 老王 NaN NaN 销售1部 113.0

内连接outer,两表的的交集

import pandas as pd

y19=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2019年" )

y20=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2020年" )

print (y19)

print (y20)

df=y19.join(other=y20.set_index( "业务员" ), #指定右表的关联的索引

lsuffix= "19" ,

rsuffix= "20" ,

on= "业务员" , #指定左表的关联的索引

how= "inner"

)

print (df)

返回:

业务员 部门 业绩
0 张三 销售1部 153
1 李四 销售2部 228
2 王麻子 销售2部 189
3 小韦 销售3部 185
4 许麻子 销售1部 265
5 老刘 销售1部 143

业务员 部门 业绩
0 张三 销售1部 180
1 李四 销售2部 124
2 王麻子 销售2部 125
3 许麻子 销售1部 215
4 老刘 销售1部 171
5 老王 销售1部 113

业务员 部门19 业绩19 部门20 业绩20
0 张三 销售1部 153 销售1部 180
1 李四 销售2部 228 销售2部 124
2 王麻子 销售2部 189 销售2部 125
4 许麻子 销售1部 265 销售1部 215
5 老刘 销售1部 143 销售1部 171